<?php
class PdoChoix extends PdoConnect {
    
    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * From `choix`INNER JOIN `sondage` ON choix.idsondage=sondage.IDSONDAGE ORDER BY sondage.IDSONDAGE desc";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
    public function readAllSondage($IdSondage) {
        try {
            $this->open();
            $sql = "SELECT * From `choix` WHERE idsondage=$IdSondage";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }
    public function create(choix $choix) {
        try {
            $this->open();
            $sql = "INSERT INTO `choix`(idchoix, IDSONDAGE, intitulechoix) VALUES(?, ?, ?)";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $choix->getidchoix(), PDO::PARAM_INT);
            $prep->bindValue(2, $choix->getIDSONDAGE(), PDO::PARAM_STR);
            $prep->bindValue(3, $choix->getintitulechoix(), PDO::PARAM_INT);
//            $prep->bindValue(3, $sondage->getnbrvotant(), PDO::PARAM_INT);
//            $prep->bindValue(4, $datedebut->getdatedebut(), PDO::PARAM_STR);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdChoix, $IdSondage) {
        try {
            $this->open();
            $sql = "SELECT * FROM `choix` WHERE idchoix=".$IdChoix." and idsondage=".$IdSondage."";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $choix = new Choix();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $choix->setIdChoix($ligne->idchoix);
            $choix->setIdSondage($ligne->idsondage);
            $choix->setIntituleChoix($ligne->intitulechoix);
            $choix->setNbrVotantChoix($ligne->nbrvotantchoix);


            return $choix;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(choix $choix) {

        try {
            $this->open();
            $sql = "DELETE FROM choix WHERE idsondage=? AND idchoix=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $choix->getIdSondage(), PDO::PARAM_INT);
            $prep->bindValue(2, $choix->getIdChoix(), PDO::PARAM_INT);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(choix $choix) {
        try {
            $this->open();
            $sql = "UPDATE choix SET intitulechoix = ? WHERE idsondage=? AND idchoix=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $choix->getIntituleChoix(), PDO::PARAM_STR);
            $prep->bindValue(2, $choix->getIdSondage(), PDO::PARAM_INT);
            $prep->bindValue(3, $choix->getIdChoix(), PDO::PARAM_INT);


            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function updatenbrvotantchoix(choix $choix) {
        try {
            $this->open();
            $sql = "UPDATE choix SET nbrvotantchoix = nbrvotantchoix+1 WHERE idsondage=? AND idchoix=?";

            $prep = $this->pdo->prepare($sql);

//            $prep->bindValue(1, $choix->getNbrVotantChoix(), PDO::PARAM_INT);
            $prep->bindValue(1, $choix->getIdSondage(), PDO::PARAM_INT);
            $prep->bindValue(2, $choix->getIdChoix(), PDO::PARAM_INT);


            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }    
    public function exist($IdChoix, $IdSondage) {
        $this->open();
        $query = "SELECT * FROM choix WHERE idchoix=$IdChoix AND idsondage=$IdSondage;";
        $statement = $this->pdo->query($query);
        return $statement->rowCount();
    }
}
?>
